The present invention relates to a data error correcting method and apparatus which correct errors in data read from a recording medium.
As the recording capacity of recording media, such as an optical disk, increases, the time required to read data from such recording media increases. The time necessary for data reading includes the time required for an error correcting operation. In order to decrease data reading time, it is necessary to shorten the time required for error correction.
An ECC (Error Correcting Code) has previously been affixed to data recorded on a recording medium (an audio tape, video tape, CD, DVD or the like) to correct an error which may occur at the time of reading the data. Data to be recorded on a DVD-ROM, for example, is formatted as illustrated in FIG. 1. A sector 1 includes an ID and reserve area of 12 bytes, user data of 2 Kbytes and an EDC (Error Detecting Code) of 4 bytes. Each sector 1 includes twelve rows of data which extend in the PI direction (row direction). The first row of data in each sector 1 consists of 172 bytes. Recorded in the first row are the 12-byte ID and reserve area and 160-byte user data. In the last row are recorded 168-byte user data and 4-byte EDC. Each of the intermediate rows has 172-bytes of user data.
As shown in FIG. 2, a data block 2 includes sixteen sectors 1, a PO-ECC section 3 and a PI-ECC section 4. The PO-ECC section 3 is an error correcting code for data in the PO direction (column direction) which exist over the individual sectors 1, and the PI-ECC section 4 is an error correcting code for data in each sector 1. The PI-ECC section 4 is affixed to generate a syndrome for error correction for each row in the PI direction in the data block 2 or for each PI interleave. The PO-ECC section 3 is affixed to generate a syndrome for error correction for each column in the PO direction in the data block 2 or for each PO interleave.
The data block 2 is stored on the DVD-ROM in the encoding format as shown in FIG. 5. The PO-ECC section 3 is segmented for the individual interleaves, with one interleave inserted between sectors 1. "One interleave" is a row or a column of data which includes user data and an error correcting code. The format can ensure high error detecting and correcting performance in an error correcting operation at the time of data reproduction.
FIG. 7 shows a syndrome operation unit which generates a syndrome in an error correcting operation. An EOR gate 5 receives data, read from a recording medium, byte by byte, and sends an output signal to a latch circuit 6. The latch circuit 6 receives the signal from the EOR gate 5 (Exclusive-OR) and sends a signal to a Galois constant multiplier 7. The Galois constant multiplier 7 performs an arithmetic operation on the signal received from the latch circuit 6. The Galois constant multiplier 7 sends an acquired Galois constant to the EOR gate 5. In the syndrome operation unit, every time data is sequentially input to the EOR gate 5, the latch circuit 6 outputs an error correcting syndrome Sy.
A conventional error correcting operation in a mode of reading data recorded in the above-described format will now be discussed with reference to FIG. 8.
When data in the PI direction from each sector 1 in the data block 2 is sequentially input byte by byte (step 1), PI syndromes are sequentially generated (step 2). At the same time, the input data in the PI direction is sequentially stored in a buffer memory for each interleave as shown in FIG. 3 (step 3).
When an error correcting syndrome Sy for one interleave in the PI direction is generated, the position and correction value for error data are computed interleave by interleave (step 4), and rewriting of the error data is carried out on the buffer memory (step 5). Such an operation is repeated for every PI interleave.
Next, error correction for the individual PO interleaves in the data block 2 is executed. Data read in the PI direction is stored in the buffer memory as a data block 2a as shown in FIG. 5.
When data is read in the PO direction from the data block 2, PO-ECC data is read byte by byte for every 12 bytes as shown in FIG. 6. The PO interleaves which have been read in the order shown in FIG. 6 are sorted in the order shown in FIG. 4 (step 6), and error correcting syndromes for the individual PO interleaves are generated in that situation (step 7).
The reason for rearranging the PO-ECC data in this manner is because the PO-ECC data is generated based on the data in each sector 1 which has continuously been read in the PO direction as shown in FIG. 2. In other words, it is because arithmetic operations of syndromes have weights in the order of data input. Even when data, which has been weighed in the state shown in FIG. 2, is input to the syndrome operation unit in the input order shown in FIG. 6, the operation unit cannot generate accurate syndromes.
When an error correcting syndrome for one interleave in the PO direction is generated, the position and correction value for error data are computed interleave by interleave (step 8), and rewriting of the error data is carried out on the buffer memory (step 9). The operation is repeated for every PO interleave. Through the operation, data read from the data block 2a is subjected to a high-precision error correcting operation both in the PI and PO directions.
A recording medium like the aforementioned DVD-ROM is used as a data storage means which belongs to the peripheral devices of a computer, and an improvement on the operational speeds of computers demands faster error correction of data read from a recording medium. The above-described conventional error correction, however, takes a relatively long time for data reading and writing with respect to a buffer memory and demands that time to be shortened. As the operational speeds of computers increase, the time required for arithmetic operations for error correction is shortened while the time for data reading and writing with respect to a buffer memory is not shortened as much as desired.
Reading and writing data to and from a buffer memory are executed in steps 3, 5 and 6 in the arithmetic operation on syndromes. In step 5, data reading and writing with respect to the buffer memory are carried out for error correction of data, stored in the buffer memory, in the PI direction. In step 6, data reading and writing with respect to the buffer memory are performed for rearranging data in the PO direction. To shorten the time required for rearranging the data in a different order, it is possible to previously store data in the buffer memory in a rearranged form (see FIG. 2). However, even this case requires an operation for reading data from the buffer memory for error correction in the PO direction.
Because data reading and writing with respect to the buffer memory is repeatedly executed, the time for error correction is undesirably long. As the amount of data in a single data block on a DVD-ROM is very large, the access time for the buffer memory is increased, which inevitably increases the time required for error correction.
The reason error correction takes so long is because error correction in the PI direction and error correction in the PO direction are not carried out in parallel. After the error correction in the PI direction is executed, rearranging data in the PO direction is carried out, and then the error correction in the PO direction is performed. Even in the case where data is stored in the buffer memory in the state of the data block 2 shown in FIG. 2 before error correction in the PI direction, it is necessary to perform error correction in the PI direction after which data id read in the PO direction and is then subjected to error correction.
Accordingly, it is an objective of the present invention to provide a data error correcting method and apparatus which can shorten the time required for error correction.